Tim dukungan akademik memerlukan daftar pendaftaran aktif yang performa terbarunya menurun. Bandingkan setiap mahasiswa dengan performa mereka sendiri sebelumnya pada mata kuliah yang sama.
Sepakati Aturannya
- Gunakan dua periode:
sebelumnyadanterbaru. Masing-masing memiliki dua penilaian dengan bobot yang sama. - Syaratkan minimal dua nilai non-NULL pada setiap periode sebelum membandingkan rata-rata.
- Hitung
decline_points = earlier_avg - recent_avg. - Penurunan minimal 15 poin berarti Review. Jika tidak, pendaftaran yang memenuhi syarat mendapat Tanpa peringatan.
- Pisahkan Data tidak memadai secara terpisah. Nol adalah nilai yang sah; NULL atau catatan yang hilang bukanlah nol.
Siapkan Database Anda
Buka lab8_setup.sql yang disediakan dari folder TA DSAI2202/lab8/ di pgAdmin dan jalankan file lengkapnya. Gunakan kembali pengaturan koneksi di sebelah kanan setiap kali Anda membuka koneksi baru.
Skrip setup juga menyediakan performance_comparison, sebuah kueri tersimpan yang disebut view. Ini akan mendukung latihan selanjutnya; ini bukan tabel tambahan berisi hasil penilaian yang disimpan.
SET search_path TO lab8;SET search_path TO lab8;
SELECT 'students' AS table_name, COUNT(*) AS row_count
FROM students
UNION ALL SELECT 'courses', COUNT(*) FROM courses
UNION ALL SELECT 'enrolments', COUNT(*) FROM enrolments
UNION ALL SELECT 'assessment_results', COUNT(*) FROM assessment_results
UNION ALL SELECT 'support_units', COUNT(*) FROM support_units
ORDER BY table_name;SET search_path TO lab8;
SELECT e.enrolment_id, e.student_id, e.course_code,
r.result_id, r.period, r.assessment_no, r.score
FROM enrolments AS e
JOIN assessment_results AS r
ON r.enrolment_id = e.enrolment_id
WHERE e.enrolment_id IN ('E01', 'E07', 'E08', 'E09', 'E24')
ORDER BY e.enrolment_id, r.period, r.assessment_no;Periksa Jumlah Data Setup
| Tabel | Baris | Satu baris mewakili |
|---|---|---|
| students | 18 | Profil mahasiswa |
| courses | 4 | Sebuah mata kuliah |
| enrolments | 24 | Pendaftaran seorang mahasiswa pada satu mata kuliah |
| assessment_results | 92 | Hasil satu penilaian untuk suatu pendaftaran dan periode |
| support_units | 7 | Unit dukungan pada latihan hierarki opsional |
Terdapat 22 pendaftaran aktif dan 2 pendaftaran yang ditarik. Investigasi akhir membutuhkan satu baris per pendaftaran aktif, bukan satu baris per penilaian atau satu baris per mahasiswa di semua mata kuliah.
Lima Kasus untuk Ditelusuri
| Pendaftaran | Mata Kuliah | Nilai sebelumnya | Nilai terbaru | Bukti cukup? |
|---|---|---|---|---|
| E01 | SQL101 | 80, 90 | 60, 70 | Ya |
| E07 | SQL101 | 80, NULL | 50, 50 | Tidak: hanya satu nilai sebelumnya |
| E08 | SQL101 | 80, 80 | NULL, NULL | Tidak: tidak ada nilai terbaru yang dinilai |
| E09 | SQL101 | Tidak ada baris | 60, 60 | Tidak: periode sebelumnya tidak ada |
| E24 | STAT101 | 0, 0 | 0, 0 | Ya |
Kueri pemeriksaan mengembalikan 18 baris penilaian. E09 hanya memiliki dua baris; penilaian sebelumnya tidak ada. E08 memiliki dua baris terbaru, tetapi keduanya tidak memiliki nilai yang tercatat.
Periksa dua contoh yang memenuhi syarat
E01: rata-rata sebelumnya 85, rata-rata terbaru 65, penurunan 20 poin → Review. E24: kedua rata-rata 0, penurunan 0 → Tanpa peringatan. Tiga contoh lainnya memerlukan label Data tidak memadai.